1. Field of the Invention
This invention relates to data processing systems in which I/O operations between main storage of a primary data processing system and peripheral devices are controlled by intelligent controllers.
2. Prior Art
Contemporary data processing systems have considerable processing "power" distributed outside of the primary or host systems which perform the major "number crunching" processes. Such systems contain I/O controllers and devices which operate under the direction of programmable microprocessors. Although used primarily for directing input/output (I/O) operations between associated devices and primary systems such microprocessors represent general purpose processing resources which could be delegated additional processing responsibilities by the primary systems if appropriate applications could be found which would not be entirely incompatible with presently used command architectures.
Consider, for example, the problem of encrypting and decrypting large data sets (e.g. 10,000 bytes or more) for transmission between primary processing centers over non-secure data communication links. Assume, for instance, that each center had attached to it (via a relatively secure link) a controller containing microprocessing intelligence programmable to perform the transformations (encryption/decryption) but inadequate storage capacity to hold the large data set, and adapted relative to the primary system to receive secondary programs of instructions for enabling it to conduct the transformation operations, in addition to the programming needed for its "principal" I/O control functions. Obviously, such controllers could not be used as "satellite" encryption/decryption processors, in these circumstances, without breaking up each large data set into smaller subsets, and scheduling the subset transfers as discretely separate I/O operations. But when the processing workload presented to the primary system in respect to scheduling such discrete subset transfers is compared to the processing load it would carry if it were to conduct the transformation itself it becomes clearly impractical to consider the use of attached microprocessing facilities for such operations. Furthermore, such subset operations would not be practical for use with those coding algorithms which relate each byte or word transformation to the results of previous byte or word transformations.